package rmi;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;

import client.Client;

public class ClientRmiInterfaceImp extends UnicastRemoteObject implements ClientRmiInterface{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Client cl;
	public ClientRmiInterfaceImp(Client cl) throws RemoteException
	{
		this.cl=cl;
	}
	
	public void update(Message msg) {

			cl.getTb().majTab(msg);
	}
	
	public void setEstampile(int estampille){
		 cl.getEstampille().setEstampille(estampille);
	}


	public void receiveMsg(Message msg) {
		ArrayList<Message> list=cl.getList();
		list.add(msg);
		
		/*
		 * comparer les estampille dans tous les
		 * liste de messgae recu et chosir
		 * les estampille plus grand
		 */
		Estampille max=list.get(0).getDate();
		for(int i=1;i<list.size();i++)
		{
			if(list.get(i).getDate().getEstampille()>max.getEstampille())
			{
				max=list.get(i).getDate();
			}
		}
		/*
		 * comparer l'estampille max avec estampille 
		 * du client
		 */
		if(cl.getEstampille().getEstampille()>max.getEstampille())
		{
			max=cl.getEstampille();
		}
		
		/*
		 * envois l'estampille à serveur
		 */
		max.setId(cl.getTb().getId());
		msg.setDate(max);
		MessageRemote mr = new MessageRemote();
		mr.sendMessage(msg,1);
	}
	public void quit() {
		cl.quit();
		
	}

}
